package net.bolue.sysmng.tblbean;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;


/**
 * 表列信息
 * @author Administrator
 *
 */
public class ColInfo extends TableBean{
	
	/**
	 * 子系统
	 */
	private String subSys;
	
	/**
	 * 数据表名
	 */
	private String tblName;
	
	/**
	 * 数据列名
	 */
	private String colName;
	
	/**
	 * 显示序号
	 */
	private Integer dispNo;
	
	/**
	 * 数据列描述
	 */
	private String colDesc;
	
	/**
	 * 数据类型
	 * 1:整数		java.lang.Integer
	 * 2:长整数	java.lang.Long
	 * 3:字符串	java.lang.String
	 * 4:日期/时间	java.util.Date
	 * 5:实数		java.math.BigDecimal
	 * 6:二进制大对象	java.sql.Blob
	 * 7:字符串大对象	java.sql.Clob
	 * 8:纯日期	java.sql.Date
	 */
	private Integer jType;
	
	/**
	 * 是否主键
	 */
	private Integer isPkey;
	
	/**
	 * 是否允许为空
	 * 1:可空
	 * 0:不可空
	 */
	private Integer isNullAble;
	
	/**
	 * 字典类型
	 * 0无字典
	 * 1数字字典
	 * 2字符字典
	 * 4引用字典
	 */
	private Integer dicKind;
	
	/**
	 * 字典子系统
	 */
	private String dicSubSys;
	
	/**
	 * 字典组标识
	 */
	private Integer dicGrpid;
	
	/**
	 * 值对应字典列
	 * 1:字典标识
	 * 2:字典描述
	 */
	private Integer valDicCol;
	
	/**
	 * 标签类型
	 * -1:无标签
	 * 1:系统内定
	 * 2:下拉框
	 * 3:可编辑下拉框
	 * 4:隐藏域
	 * 5:密文
	 * 6:选择文件
	 * 7:单行输入框
	 * 8：多行输入框
	 * 9:时间输入框
	 * 11:可编辑弹出字典
	 * 12:不可编辑弹出字典
	 * 13:可编辑多行弹出字典
	 * 14:不可编辑多行弹出字典
	 */
	private Integer tagType;
	
	/**
	 * 数据列大小
	 */
	private Integer colSize;
	
	/**
	 * 数据小数位
	 */
	private Integer decDigits;
	
	/**
	 * 编辑框长度
	 */
	private Integer dispLen;
	
	/**
	 * 后缀标签
	 */
	private String postFixTag;
	
	public String getSubSys() {
		return subSys;
	}

	public void setSubSys(String subSys) {
		this.subSys = subSys;
	}

	public String getTblName() {
		return tblName;
	}

	public void setTblName(String tblName) {
		this.tblName = tblName;
	}

	public String getColName() {
		return colName;
	}

	public void setColName(String colName) {
		this.colName = colName;
	}

	public Integer getDispNo() {
		return dispNo;
	}

	public void setDispNo(Integer dispNo) {
		this.dispNo = dispNo;
	}

	public String getColDesc() {
		return colDesc;
	}

	public void setColDesc(String colDesc) {
		this.colDesc = colDesc;
	}

	public Integer getJType() {
		return jType;
	}

	public void setJType(Integer jType) {
		this.jType = jType;
	}

	public Integer getIsPkey() {
		return isPkey;
	}

	public void setIsPkey(Integer isPkey) {
		this.isPkey = isPkey;
	}

	public Integer getIsNullAble() {
		return isNullAble;
	}

	public void setIsNullAble(Integer isNullAble) {
		this.isNullAble = isNullAble;
	}

	public Integer getDicKind() {
		return dicKind;
	}

	public void setDicKind(Integer dicKind) {
		this.dicKind = dicKind;
	}

	public String getDicSubSys() {
		return dicSubSys;
	}

	public void setDicSubSys(String dicSubSys) {
		this.dicSubSys = dicSubSys;
	}

	public Integer getDicGrpid() {
		return dicGrpid;
	}

	public void setDicGrpid(Integer dicGrpid) {
		this.dicGrpid = dicGrpid;
	}

	public Integer getValDicCol() {
		return valDicCol;
	}

	public void setValDicCol(Integer valDicCol) {
		this.valDicCol = valDicCol;
	}

	public Integer getTagType() {
		return tagType;
	}

	public void setTagType(Integer tagType) {
		this.tagType = tagType;
	}

	public Integer getColSize() {
		return colSize;
	}

	public void setColSize(Integer colSize) {
		this.colSize = colSize;
	}

	public Integer getDecDigits() {
		return decDigits;
	}

	public void setDecDigits(Integer decDigits) {
		this.decDigits = decDigits;
	}

	public Integer getDispLen() {
		return dispLen;
	}

	public void setDispLen(Integer dispLen) {
		this.dispLen = dispLen;
	}
	
	public String getPostFixTag() {
		return postFixTag;
	}

	public void setPostFixTag(String postFixTag) {
		this.postFixTag = postFixTag;
	}

	@Override
	public TableBean mapToEntry(Map<String, Object> map) {
		ColInfo colInfo = new ColInfo();
		Set<String> keySet = map.keySet();
		Iterator<String> keyIt = keySet.iterator();
		while(keyIt.hasNext()){
			String key = keyIt.next();
			Object o = map.get(key);
			if("SUBSYS".equals(key)){
				colInfo.setSubSys((String)o);
			} else if("TBLNAME".equals(key)){
				colInfo.setTblName((String)o);
			} else if("COLNAME".equals(key)){
				colInfo.setColName((String)o);
			} else if("DISPNO".equals(key)){
				colInfo.setDispNo((Integer)o);
			} else if("COLDESC".equals(key)){
				colInfo.setColDesc((String)o);
			} else if("JTYPE".equals(key)){
				colInfo.setJType((Integer)o);
			} else if("ISPKEY".equals(key)){
				colInfo.setIsPkey((Integer)o);
			} else if("ISNULLABLE".equals(key)){
				colInfo.setIsNullAble((Integer)o);
			} else if("DICKIND".equals(key)){
				colInfo.setDicKind((Integer)o);
			} else if("DICSUBSYS".equals(key)){
				colInfo.setDicSubSys((String)o);
			} else if("DICGRPID".equals(key)){
				colInfo.setDicGrpid((Integer)o);
			} else if("VALDICCOL".equals(key)){
				colInfo.setValDicCol((Integer)o);
			} else if("TAGTYPE".equals(key)){
				colInfo.setTagType((Integer)o);
			} else if("COLSIZE".equals(key)){
				colInfo.setColSize((Integer)o);
			} else if("DECDIGITS".equals(key)){
				colInfo.setDecDigits((Integer)o);
			} else if("DISPLEN".equals(key)){
				colInfo.setDispLen((Integer)o);
			} else if("POSTFIXTAG".equals(key)){
				colInfo.setPostFixTag((String)o);
			}
		}
		return colInfo;
	}
	

	@Override
	public String tableName() {
		return "st_colinfo";
	}

	@Override
	public String keyProps() {
		return "subSys,tblName,colName";
	}

}
